import { IPSModelSortable } from '../ipsmodel-sortable';
import { IPSCodeList } from '../codelist/ipscode-list';
import { IPSServiceAPIDTOField } from './ipsservice-apidtofield';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSSubSysServiceAPIDTOField
 */
export interface IPSSubSysServiceAPIDTOField extends IPSServiceAPIDTOField, IPSModelSortable {
  /**
   * 中文名称
   * @type {string}
   */
  logicName: string;

  /**
   * 代码表
   *
   * @type {IPSCodeList}
   */
  getPSCodeList(): IPSCodeList | null;

  /**
   * 代码表
   *
   * @type {IPSCodeList}
   */
  get psCodeList(): IPSCodeList | null;

  /**
   * 代码表（必须存在）
   *
   * @type {IPSCodeList}
   */
  getPSCodeListMust(): IPSCodeList;

  /**
   * 外部服务接口DTO属性来源类型
   * @description 值模式 [外部接口DTO属性来源类型] {SUBSYSSERVICEAPIDEFIELD：外部服务接口实体属性、 SUBSYSSERVICEAPIDERS：外部服务接口实体关系 }
   * @type {( string | 'SUBSYSSERVICEAPIDEFIELD' | 'SUBSYSSERVICEAPIDERS')}
   */
  sourceType: string | 'SUBSYSSERVICEAPIDEFIELD' | 'SUBSYSSERVICEAPIDERS';

  /**
   * 允许空输入
   * @type {boolean}
   * @default true
   */
  allowEmpty: boolean;
}
